無服務(wù)器 JavaScript 是包含應(yīng)用程序的全部或部分的 JavaScript 代碼,僅在請求時運(yùn)行,并且不托管在專有服務(wù)器上。它使開發(fā)人員能夠構(gòu)建在網(wǎng)絡(luò)上運(yùn)行的高性能、低延遲的無服務(wù)器應(yīng)用程序(例如JAMstack 應(yīng)用程序),并避免與其他無服務(wù)器應(yīng)用程序相關(guān)的許多問題,例如冷啟動。
無服務(wù)器JavaScript 托管在邊緣網(wǎng)絡(luò)中或由 HTTP 緩存服務(wù)托管,該服務(wù)存儲內(nèi)容以快速響應(yīng) HTTP 請求。開發(fā)人員可以編寫和部署 JavaScript 函數(shù),在 HTTP 請求到達(dá)源服務(wù)器之前對其進(jìn)行處理。
使用無服務(wù)器 JavaScript,可以通過在邊緣運(yùn)行代碼來擴(kuò)展現(xiàn)有應(yīng)用程序的功能并改善用戶體驗(yàn),或者創(chuàng)建一個新的、完全無服務(wù)器的、快速且高度可擴(kuò)展的應(yīng)用程序。
什么是清漆?
Varnish 是一個 Web 加速器,旨在加速 Web 應(yīng)用程序并提高網(wǎng)站性能。它是一個緩存 HTTP反向代理,這意味著它位于任何 Web 服務(wù)器的前面,并通過緩存或存儲 Web 客戶端經(jīng)常請求的任何內(nèi)容來加速進(jìn)出該服務(wù)器的 HTTP 流量。Varnish 配置語言或 VCL 與 Varnish 結(jié)合使用,以允許開發(fā)人員自定義 Varnish 管理 Web 請求的方式。
在無服務(wù)器架構(gòu)中使用 JavaScript 而不是 VCL 有什么優(yōu)勢?
VCL 是一種配置語言,旨在使 Varnish 緩存易于配置;它不是一種成熟的編程語言。VCL 不夠靈活,無法構(gòu)建或擴(kuò)展強(qiáng)大的應(yīng)用程序。與 JavaScript 相比,它的功能有限。此外,VCL 沒有在 Varnish 實(shí)現(xiàn)之外使用,因此大多數(shù)開發(fā)人員并不熟悉它。相比之下,JavaScript 無處不在,并且已經(jīng)廣泛用于構(gòu)建應(yīng)用程序。在無服務(wù)器架構(gòu)中使用 JavaScript 允許開發(fā)人員以他們熟悉的語言構(gòu)建完整的應(yīng)用程序。無服務(wù)器 JavaScript 允許更廣泛的開發(fā)人員在邊緣利用無服務(wù)器計算,并允許這些開發(fā)人員構(gòu)建更多種類的應(yīng)用程序。
使用無服務(wù)器 JavaScript 構(gòu)建應(yīng)用程序如何幫助減少延遲?
無服務(wù)器 JavaScript 在 HTTP 緩存網(wǎng)絡(luò)中運(yùn)行,與托管在源服務(wù)器上的代碼相比,它更接近最終用戶。因此,請求不必一路傳送到源服務(wù)器并返回,應(yīng)用程序?qū)τ脩艚换サ捻憫?yīng)速度更快。緩存網(wǎng)絡(luò)在地理上分布的邊緣位置越多,減少的延遲就越多。
無服務(wù)器 JavaScript 何時運(yùn)行?
在無服務(wù)器模型中,應(yīng)用程序被分解為函數(shù),函數(shù)代碼運(yùn)行以響應(yīng)某些事件。否則它不會運(yùn)行。觸發(fā)無服務(wù)器 JavaScript 執(zhí)行的事件是 HTTP 請求。開發(fā)人員可以自定義其 JavaScript 函數(shù)響應(yīng)的 HTTP 請求類型,以及如何更改或滿足 HTTP 請求。
什么是 HTTP 請求?
這是通過HTTP(超文本傳輸??協(xié)議)從客戶端發(fā)送到服務(wù)器的請求。瀏覽器將用戶操作(例如單擊超鏈接或提交表單)轉(zhuǎn)換為 HTTP 請求。然后將請求發(fā)送到服務(wù)器,服務(wù)器發(fā)送 HTTP 響應(yīng)來滿足請求。當(dāng)應(yīng)用程序進(jìn)行 API 調(diào)用時,也會發(fā)生 HTTP 請求。
什么是 HTTP 緩存?
HTTP 緩存是指服務(wù)器或?yàn)g覽器保存對用戶 HTTP 請求的響應(yīng)的副本,以便更快地響應(yīng)未來的請求。甲CDN服務(wù)器是HTTP緩存的一個例子。一些 HTTP 緩存服務(wù)使開發(fā)人員能夠自定義 HTTP 緩存如何為他們的應(yīng)用程序工作。
什么是服務(wù)人員?
服務(wù)工作者是瀏覽器下載和運(yùn)行的腳本,以便為用戶創(chuàng)建定制的體驗(yàn)。Service Worker 可以在瀏覽器中實(shí)現(xiàn)推送通知、后臺同步和離線功能等功能。它們用 JavaScript 編寫,在請求到達(dá) Internet 之前攔截、修改和響應(yīng) HTTP 請求。
Service Worker 處理 HTTP 流量的兩種方式:
Service Worker 可以在不聯(lián)系 Web 服務(wù)器的情況下響應(yīng) HTTP 請求
Service Worker 可以修改 HTTP 請求和響應(yīng)
什么是 Chrome V8?
Chrome V8,也稱為“V8”,是 Google 開發(fā)的用于編譯、優(yōu)化和執(zhí)行 JavaScript 的 JavaScript 引擎。通過使用 V8 執(zhí)行 JavaScript 代碼,JavaScript 工作者的啟動時間大大減少,消除了大多數(shù)情況下的“冷啟動”問題。V8 還針對安全漏洞進(jìn)行了大量分析,使其成為安全運(yùn)行 JavaScript 代碼的理想選擇。